home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 3 / Info_Mac_1994-01.iso / Development / Source / MSG Demo 1.2 Source / MSG Demo ƒ / MSG Shell ƒ / msg apple events.c next >
Text File  |  1993-11-10  |  3KB  |  85 lines

  1. /**********************************************************************\
  2.  
  3. File:        msg apple events.c
  4.  
  5. Purpose:    This module handles the 4 required apple events: open
  6.             application, open document & print document (not supported),
  7.             and quit application.
  8.  
  9.  
  10. MSG Demo -- graphic effects demonstration program
  11. Copyright (C) 1992-3 Mark Pilgrim & Dave Blumenthal
  12.  
  13. This program is free software; you can redistribute it and/or modify
  14. it under the terms of the GNU General Public License as published by
  15. the Free Software Foundation; either version 2 of the License, or
  16. (at your option) any later version.
  17.  
  18. This program is distributed in the hope that it will be useful,
  19. but WITHOUT ANY WARRANTY; without even the implied warranty of
  20. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  21. GNU General Public License for more details.
  22.  
  23. You should have received a copy of the GNU General Public License
  24. along with this program in a file named "GNU General Public License".
  25. If not, write to the Free Software Foundation, 675 Mass Ave,
  26. Cambridge, MA 02139, USA.
  27.  
  28. \**********************************************************************/
  29.  
  30. #include "msg apple events.h"
  31. #include "msg environment.h"
  32.  
  33. void SetUpAppleEvents(void)
  34. {
  35.     AEInstallEventHandler(kCoreEventClass, kAEOpenApplication,
  36.                                     HandleOpenAppAE, 0, FALSE);
  37.     AEInstallEventHandler(kCoreEventClass, kAEOpenDocuments,
  38.                                     HandleOpenDocAE, 0, FALSE);
  39.     AEInstallEventHandler(kCoreEventClass, kAEPrintDocuments,
  40.                                     HandlePrintDocAE, 0, FALSE);
  41.     AEInstallEventHandler(kCoreEventClass, kAEQuitApplication,
  42.                                     HandleQuitAE, 0, FALSE);
  43.     AESetInteractionAllowed(kAEInteractWithAll);
  44. }
  45.  
  46. pascal OSErr HandleOpenAppAE(const AppleEvent *theAppleEvent, const AppleEvent *reply,
  47.     long refcon)
  48. {
  49.     return MyGotRequiredParams(theAppleEvent);
  50. }
  51.  
  52. pascal OSErr HandleOpenDocAE(const AppleEvent *theAppleEvent, const AppleEvent *reply,
  53.     long refcon)
  54. {
  55.     return errAEEventNotHandled;
  56. }
  57.  
  58. pascal OSErr HandlePrintDocAE(const AppleEvent *theAppleEvent, const AppleEvent *reply,
  59.     long refcon)
  60. {
  61.     return errAEEventNotHandled;
  62. }
  63.  
  64. pascal OSErr HandleQuitAE(const AppleEvent *theAppleEvent, const AppleEvent *reply,
  65.     long refcon)
  66. {
  67.     OSErr            isHuman;
  68.     
  69.     isHuman=MyGotRequiredParams(theAppleEvent);
  70.     if (isHuman==noErr)
  71.         gDone = 1;
  72.     
  73.     return isHuman;
  74. }
  75.  
  76. pascal OSErr MyGotRequiredParams(const AppleEvent *theAppleEvent)
  77. {
  78.     DescType        returnedType;
  79.     Size            actualSize;
  80.     
  81.     return (AEGetAttributePtr(theAppleEvent, keyMissedKeywordAttr, typeWildCard,
  82.             &returnedType, 0L, 0, &actualSize)==errAEDescNotFound) ? noErr :
  83.             errAEParamMissed;
  84. }
  85.